X-Git-Url: https://git.r.bdr.sh/rbdr/super-polarity/blobdiff_plain/74c155708d85abfc2cf227c08de4f27003015b3f..097781e6ad3f7bb1c13c16ff7b6bb7219764fb29:/Super%20Polarity/BasicGenerator.cs diff --git a/Super Polarity/BasicGenerator.cs b/Super Polarity/BasicGenerator.cs new file mode 100644 index 0000000..7cc4544 --- /dev/null +++ b/Super Polarity/BasicGenerator.cs @@ -0,0 +1,71 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Microsoft.Xna.Framework; + +namespace SuperPolarity +{ + class BasicGenerator + { + public enum Ships : byte { Ship, Scout, Battlecruiser }; + + protected Ships ShipType; + protected SuperPolarity Game; + protected int ScoreThreshold; + protected int Rate; + protected int CurrentTime; + protected Random Randomizer; + protected Vector2 Position; + + public void Initialize(SuperPolarity game, Vector2 position, Ships shipType, int rate, int scoreThreshold) + { + Game = game; + ShipType = shipType; + ScoreThreshold = scoreThreshold; + Rate = rate; + Randomizer = new Random(); + Position = position; + } + + public void Update(GameTime gameTime) + { + if (Game.Player.Score > ScoreThreshold) + { + CurrentTime = CurrentTime + gameTime.ElapsedGameTime.Milliseconds; + + if (CurrentTime >= Rate) + { + CurrentTime = 0; + Spawn(); + } + } + } + + protected void Spawn() + { + var polarity = Ship.Polarity.Positive; + + if (Randomizer.Next(2) == 1) + { + polarity = Ship.Polarity.Negative; + } + + if (ShipType == Ships.Ship) + { + ActorFactory.CreateShip(polarity, Position); + } + + if (ShipType == Ships.Scout) + { + ActorFactory.CreateScout(polarity, Position); + } + + if (ShipType == Ships.Battlecruiser) + { + ActorFactory.CreateCruiser(polarity, Position); + } + + } + } +}